statusbar: Remove _get_message_area() from public API
authorTimm Bäder <mail@baedert.org>
Sun, 23 Feb 2020 15:53:53 +0000 (16:53 +0100)
committerTimm Bäder <mail@baedert.org>
Tue, 25 Feb 2020 13:18:24 +0000 (14:18 +0100)
The message should be manipulated via push() and pop().

docs/reference/gtk/gtk4-sections.txt
gtk/a11y/gtkstatusbaraccessible.c
gtk/gtkstatusbar.c
gtk/gtkstatusbar.h
gtk/gtkstatusbarprivate.h [new file with mode: 0644]

index e8761954f2f9c9e70be46150ca69dfd56ce22f4c..08f27b2a7d18e0280d49700996467206a2eb0d19 100644 (file)
@@ -2531,7 +2531,6 @@ gtk_statusbar_push
 gtk_statusbar_pop
 gtk_statusbar_remove
 gtk_statusbar_remove_all
-gtk_statusbar_get_message_area
 <SUBSECTION Standard>
 GTK_STATUSBAR
 GTK_IS_STATUSBAR
index d21fc7295d4d6a5f9f42fc6405780bd56ec65fa8..b4d2f3850598a5e7454e3b3012edc49ad3c9d2cb 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <string.h>
 #include <gtk/gtk.h>
+#include "gtkstatusbarprivate.h"
 #include "gtkstatusbaraccessible.h"
 
 
@@ -51,50 +52,11 @@ gtk_statusbar_accessible_initialize (AtkObject *obj,
   obj->role = ATK_ROLE_STATUSBAR;
 }
 
-static GtkWidget *
-find_label_child (GtkContainer *container)
-{
-  GList *children, *tmp_list;
-  GtkWidget *child;
-
-  children = gtk_container_get_children (container);
-
-  child = NULL;
-  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
-    {
-      if (GTK_IS_LABEL (tmp_list->data))
-        {
-          child = GTK_WIDGET (tmp_list->data);
-          break;
-        }
-      else if (GTK_IS_CONTAINER (tmp_list->data))
-        {
-          child = find_label_child (GTK_CONTAINER (tmp_list->data));
-          if (child)
-            break;
-        }
-    }
-  g_list_free (children);
-
-  return child;
-}
-
-static GtkWidget *
-get_label_from_statusbar (GtkStatusbar *statusbar)
-{
-  GtkWidget *box;
-
-  box = gtk_statusbar_get_message_area (statusbar);
-
-  return find_label_child (GTK_CONTAINER (box));
-}
-
 static const gchar *
 gtk_statusbar_accessible_get_name (AtkObject *obj)
 {
   const gchar *name;
   GtkWidget *widget;
-  GtkWidget *label;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
   if (widget == NULL)
@@ -104,11 +66,7 @@ gtk_statusbar_accessible_get_name (AtkObject *obj)
   if (name != NULL)
     return name;
 
-  label = get_label_from_statusbar (GTK_STATUSBAR (widget));
-  if (GTK_IS_LABEL (label))
-    return gtk_label_get_label (GTK_LABEL (label));
-
-  return NULL;
+  return gtk_statusbar_get_message (GTK_STATUSBAR (widget));
 }
 
 static gint
index cf140118e284f47ffaadccade69e54bdaeee7858..a570dec71f68e9f2b6a71ba9b65b7f81790f5a8e 100644 (file)
@@ -26,6 +26,7 @@
 #include "config.h"
 
 #include "gtkstatusbar.h"
+#include "gtkstatusbarprivate.h"
 
 #include "gtkbinlayout.h"
 #include "gtkframe.h"
@@ -501,7 +502,7 @@ gtk_statusbar_remove_all (GtkStatusbar *statusbar,
     }
 }
 
-/**
+/** < private >
  * gtk_statusbar_get_message_area:
  * @statusbar: a #GtkStatusbar
  *
@@ -509,14 +510,14 @@ gtk_statusbar_remove_all (GtkStatusbar *statusbar,
  *
  * Returns: (type Gtk.Box) (transfer none): a #GtkBox
  */
-GtkWidget*
-gtk_statusbar_get_message_area (GtkStatusbar *statusbar)
+const char*
+gtk_statusbar_get_message (GtkStatusbar *statusbar)
 {
   GtkStatusbarPrivate *priv = gtk_statusbar_get_instance_private (statusbar);
 
   g_return_val_if_fail (GTK_IS_STATUSBAR (statusbar), NULL);
 
-  return priv->message_area;
+  return gtk_label_get_label (GTK_LABEL (priv->label));
 }
 
 static void
index de63712c59a783895ca687be78c02f39efeb1f28..530f82e75fde87390cd21550a6b6500773b43715 100644 (file)
@@ -62,9 +62,6 @@ GDK_AVAILABLE_IN_ALL
 void       gtk_statusbar_remove_all            (GtkStatusbar *statusbar,
                                         guint         context_id);
 
-GDK_AVAILABLE_IN_ALL
-GtkWidget* gtk_statusbar_get_message_area  (GtkStatusbar *statusbar);
-
 G_END_DECLS
 
 #endif /* __GTK_STATUSBAR_H__ */
diff --git a/gtk/gtkstatusbarprivate.h b/gtk/gtkstatusbarprivate.h
new file mode 100644 (file)
index 0000000..4dc9427
--- /dev/null
@@ -0,0 +1,30 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ * GtkStatusbar Copyright (C) 1998 Shawn T. Amundson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GTK_STATUSBAR_PRIVATE_H__
+#define __GTK_STATUSBAR_PRIVATE_H__
+
+#include "gtkwidget.h"
+
+G_BEGIN_DECLS
+
+const char *    gtk_statusbar_get_message   (GtkStatusbar *statusbar);
+
+G_END_DECLS
+
+#endif /* __GTK_STATUSBAR_H__ */